package br.skytef.stmanager.daos;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import br.skytef.stmanager.entities.MotivoSuporteEntity;
import br.skytef.stmanager.utils.Pool;

public class MotivoSuporteDao {
	/**
	 * Variável para conexão, obtido através de um Pool(br.skytef.stmanager.utils.Pool)
	 */
	private static Connection conexao = null;	
	
	private static String erro;
	public static String getErro() {return erro;}


	/**
	 * Inserir nova Motivo/registro
	 * @param novo Motivo suporte
	 */

	public boolean inserir(String motivo){
		try {
			conexao = Pool.getConnection();
			String query = "INSERT INTO motivoSuporte (motivo)"
					+ "VALUES (?);";
			PreparedStatement preparedStmt = conexao.prepareStatement(query);
			preparedStmt.setString				(1,motivo);
			preparedStmt.execute();	
			conexao.close();
			return true;

		} catch (SQLException e) {
			System.out.println("SQL erro: "+ e);
			erro=e.toString();
			return false;
		}catch (ClassCastException e) {
			System.out.println("Classe erro: "+ e);
			erro=e.toString();
			return false;
		} catch (Exception e) {
			System.out.println("Geral erro: "+ e);
			erro=e.toString();
			return false;
		}
	}	
	
	
	public List <MotivoSuporteEntity> listar(){
		List <MotivoSuporteEntity> motivos = null;
		MotivoSuporteEntity motivo;
		try {
			conexao = Pool.getConnection();
			Statement st = conexao.createStatement();
			ResultSet rs = st.executeQuery("SELECT * FROM motivoSuporte order by motivo");
			if (rs.next()) {   
				motivos = new ArrayList<MotivoSuporteEntity>();
				do {                      
					motivo = new MotivoSuporteEntity();
					motivo.setId((rs.getInt("id")));
					motivo.setMotivo((rs.getString("motivo")));
					motivos.add(motivo);  
				} while (rs.next());
			}
			conexao.close();
		} catch (SQLException e) {
			System.out.println("SQL erro: "+ e);
		} catch (Exception e) {
			System.out.println("Geral erro: "+ e);
		}
		return motivos;		
	}


	

}